import random

from flask import render_template, request, session, jsonify, make_response

from app import db
from app.models.models import User
from . import login_blu


@login_blu.route("/login")
def login():
    return render_template("index/login.html")


@login_blu.route("/reg")
def reg():
    return render_template("index/reg.html")


@login_blu.route("/用户注册协议")
def reg1():
    return render_template("index/用户注册协议.html")


@login_blu.route("/getpass")
def getpass():
    return render_template("index/getpass.html")


@login_blu.route("/verifyCode")
def verifyCode():
    from app.utils.captcha.captcha import captcha

    # 生成验证码
    # hash值  验证码值  图片内容
    name, text, image = captcha.generate_captcha()

    # print("注册时的验证码为：", name, text, image)  # hash值  验证码值  图片内容

    # 将生成的图片验证码值作为value，存储到session中
    session["captcha"] = text  # 通过session的方式将刚刚生成的图片验证码的值，进行存储，以便在登录的时候进行验证 图片验证码是否输入正确

    # 返回响应内容
    resp = make_response(image)
    # 设置内容类型
    resp.headers['Content-Type'] = 'image/jpg'
    return resp


@login_blu.route('/dologin', methods=['POST'])
def dologin():
    # if session["user"]:
    #     return render_template("")
    # 获取用户注册是提交的数据
    mobile = request.form.get('userinp')
    password = request.form.get('password')
    print(mobile,password)
    # #  测试专用一下
    # ret = {
    #     'errno': "0",
    #     'errmsg': '登录成功'
    # }
    # return jsonify(ret)
    # #  测试专用一上

    # 查询数据库
    if not all([mobile, password]):
        ret = {
            'errno': 3,
            'errmsg': "缺少参数"
        }
        return jsonify(ret)
    user = db.session.query(User).filter(User.mobile == mobile, User.password_hash == password).first()
    print(user)
    if user:
        ret = {
            'errno': 0,
            'errmsg': '登录成功'
        }
        # session["user"] = user
        return jsonify(ret)
    else:
        ret = {
            'errno': 2,
            'errmsg': '账号或者密码错误'
        }
        return jsonify(ret)
